import RPi.GPIO as GPIO
import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

#左轮（默认低电平）
IN1 = 22
IN2 = 23
pwm_left = 24
#左轮（默认高电平）
IN3 = 27
IN4 = 18
pwm_right = 17

def init():
    GPIO.setup(IN1, GPIO.OUT)
    GPIO.setup(IN2, GPIO.OUT)
    GPIO.setup(IN3, GPIO.OUT)
    GPIO.setup(IN4, GPIO.OUT)
    GPIO.setup(pwm_left, GPIO.OUT)
    GPIO.setup(pwm_right, GPIO.OUT)

#前进
def forward(st):
    GPIO.output(IN1, GPIO.LOW)
    GPIO.output(IN2, GPIO.HIGH)
    GPIO.output(IN3, GPIO.LOW)
    GPIO.output(IN4, GPIO.HIGH)
    print("前进....")
    time.sleep(st)
    
#后退
def back(st):
    GPIO.output(IN1, GPIO.HIGH)
    GPIO.output(IN2, GPIO.LOW)
    GPIO.output(IN3, GPIO.HIGH)
    GPIO.output(IN4, GPIO.LOW)
    print("后退....")
    time.sleep(st)

#右转
def right(st):
    GPIO.output(IN1, GPIO.LOW)
    GPIO.output(IN2, GPIO.HIGH)
    GPIO.output(IN3, False)
    GPIO.output(IN4, False)
    print("向右转....")
    time.sleep(st)

#左转
def left(st):
    GPIO.output(IN1, False)
    GPIO.output(IN2, False)
    GPIO.output(IN3, GPIO.LOW)
    GPIO.output(IN4, GPIO.HIGH)
    print("向左转....")
    time.sleep(st)
 
#向右转圈
def around_r(st):
    GPIO.output(IN1, GPIO.LOW)
    GPIO.output(IN2, GPIO.HIGH)
    GPIO.output(IN3, GPIO.HIGH)
    GPIO.output(IN4, GPIO.LOW)
    print("向右转圈....")
    time.sleep(st)
    
#向左转圈
def around_l(st):
    GPIO.output(IN1, GPIO.HIGH)
    GPIO.output(IN2, GPIO.LOW)
    GPIO.output(IN3, GPIO.LOW)
    GPIO.output(IN4, GPIO.HIGH)
    print("向左转圈....")
    time.sleep(st)
 

init()
p_left = GPIO.PWM(pwm_left,80)
p_right = GPIO.PWM(pwm_right,80)
p_left.start(100)
p_right.start(100)

forward(5)
back(5)
#right(5)
#left(5)
#around_r(5)
#around_l(5)

p_left.stop()
p_right.stop()
GPIO.cleanup()